<!DOCTYPE html>
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0"/>
	<title>BLE Web Control Tool</title>
    <link rel="icon" href="favicon.ico" />
	<link rel="stylesheet" href="main.css">
  	<script src="common.js"></script>
  	<script src="vue3.global.prod.js"></script>
</head>

<header style="height:80px;border-bottom:solid gray;margin-left: 20px;margin-right: 20px;">
	<svg style="z-index: 9999;float: right; display: block;position: relative; padding:25px 10px 0px 0px;"  id="help" onclick="window.open('help.pdf', 'newwindow', 'height=1080, width=1920, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no')" class="btn" width="20" height="20" viewBox="0 0 24 24">
		<path fill="yellow" d="m12 23l-3-3H5q-.825 0-1.413-.588T3 18V4q0-.825.588-1.413T5 2h14q.825 0 1.413.588T21 4v14q0 .825-.588 1.413T19 20h-4l-3 3Zm.9-10.05q0-.9.2-1.325t.85-1.075q.875-.875 1.238-1.463t.362-1.337q0-1.325-.9-2.138T12.225 4.8q-1.375 0-2.337.675T8.55 7.35L10.2 8q.175-.675.7-1.088t1.225-.412q.675 0 1.125.363t.45.962q0 .425-.275.9t-.925 1.05q-.825.725-1.138 1.388t-.312 1.787h1.85Zm-.95 3.85q.525 0 .888-.363t.362-.887q0-.525-.362-.888t-.888-.362q-.525 0-.887.363t-.363.887q0 .525.363.888t.887.362Z"/>
	</svg>
	<svg onclick="window.open('https://www.murata.com')" style="z-index: 9999;float: left; display: block;position: relative;padding:28px 10px 0px 10px;" class="btn" width="69" height="24" viewBox="0 0 184 63.381" >
		<g transform="translate(-31.54 -31.418)"><path d="M215.4,53.692a.827.827,0,0,0,.066-.332.846.846,0,0,0-.848-.841l-.707.005L200.42,52.5a11.414,11.414,0,0,0-11.413,11.413,11.147,11.147,0,0,0,1.506,5.671.868.868,0,0,1,.126.438.845.845,0,0,1-.847.847l-4.741,0v0a3.591,3.591,0,0,1-3.272-3.577,3.93,3.93,0,0,1,.051-.606c1.189-4.224,3.509-12.332,3.509-12.332l.335-1.2a.694.694,0,0,1,.711-.615l4.138-.009a.854.854,0,0,0,.783-.512s.4-1.355.4-1.453a.845.845,0,0,0-.847-.841l-3.072.011a.843.843,0,0,1-.847-.847c0-.11,1.9-6.731,1.9-6.731s.237-.793.237-.908a.84.84,0,0,0-.843-.84l-7.065.016a.856.856,0,0,0-.8.56h.005L178.034,49.1a.84.84,0,0,1-.821.636l-3.948-.011a.842.842,0,0,0-.808.6s-.371,1.322-.371,1.357a.842.842,0,0,0,.847.847l3.026-.005a.834.834,0,0,1,.837.836c0,.054-2.3,8.109-3.593,12.64a11.411,11.411,0,0,0-.239,1.342,3.5,3.5,0,0,0,.665,2.228.825.825,0,0,1,.157.486.835.835,0,0,1-.746.826h-6.39a1.764,1.764,0,0,1-1.774-1.688,1.481,1.481,0,0,1,.094-.41l2.276-7.958,1.885-6.592s.2-.75.2-.856a.844.844,0,0,0-.841-.841l-1.2.005-12.99-.026a11.422,11.422,0,0,0-9.891,17.118,2.189,2.189,0,0,1,.079.39.782.782,0,0,1-.789.829l-5.59.013a1.7,1.7,0,0,1-1.692-1.693,1.57,1.57,0,0,1,.059-.427l.074-.3h.023l2.418-8.336a5.086,5.086,0,0,0,.254-1.415c0-3.133-2.115-2.88-2.741-3.721,0,0-.43-.376.495-.7a12.576,12.576,0,0,0,7.528-7.063,12.125,12.125,0,0,0,1-4.815,10.958,10.958,0,0,0-10.012-10.913,11.246,11.246,0,0,0-1.17-.062l-3.485,0v.015l-15.613-.015-.011,0-2.634,0a.851.851,0,0,0-.833.692l-.5,1.872a.845.845,0,0,0,.848.841l3.89-.013a.843.843,0,0,1,.845.835c0,.044-2.411,8.472-4.806,16.833h.007C109.678,60.764,107.316,69,107.316,69a2.531,2.531,0,0,1-2.442,1.848l-2.032.013a1.657,1.657,0,0,1-1.691-1.693c.048-.77,4.444-15.747,4.444-15.81a.846.846,0,0,0-.847-.841H97.7a.841.841,0,0,0-.832.7l-4.5,15.6a2.119,2.119,0,0,1-1.9,1.406l-.927-.005a1.554,1.554,0,0,1-1.387-1.7,2.4,2.4,0,0,1,.042-.449l.091-.386.982-3.236,2.176-7.573a3.515,3.515,0,0,0,.081-.75,3.592,3.592,0,0,0-5.146-3.24L78.651,56.45a.674.674,0,0,0-.468.751,4.709,4.709,0,0,0,.306.925c.153.211.419.438.687.355.441-.148,1.782-.778,2.125-.818a.821.821,0,0,1,.847.849c0,.09-.331,1.3-.331,1.3l-1.884,6.592a6.2,6.2,0,0,0-.118.907,3.508,3.508,0,0,0,.667,2.229.823.823,0,0,1,.156.485.843.843,0,0,1-.844.847l-5.953,0a1.692,1.692,0,0,1-1.629-2.141l3.31-11.464a4.125,4.125,0,0,0,.184-1.13,3.593,3.593,0,0,0-3.593-3.595,3.512,3.512,0,0,0-1.541.349L64.8,55.59l-1.082.509a1.061,1.061,0,0,1-.409.1.869.869,0,0,1-.837-.7,3.662,3.662,0,0,0-3.544-2.967,3.55,3.55,0,0,0-1.548.349l-6.149,2.887-.687.324a1.08,1.08,0,0,1-.41.1.848.848,0,0,1-.835-.677,3.663,3.663,0,0,0-3.546-2.987,3.479,3.479,0,0,0-1.551.355l-.04.011-8.822,4.089a.81.81,0,0,0-.5.769,2.744,2.744,0,0,0,.285.771.849.849,0,0,0,.765.485.883.883,0,0,0,.364-.083l2.492-1.188a.828.828,0,0,1,.371-.086.851.851,0,0,1,.844.849c0,.271-2.987,10.5-2.987,10.5a2.535,2.535,0,0,1-2.443,1.861l-1.826-.015a.843.843,0,0,0-.808.6s-.312,1.062-.353,1.345a.774.774,0,0,0,.844.845h9.887l.005-.007,1.506,0a.855.855,0,0,0,.8-.562h-.005L48.4,59.848a.907.907,0,0,1,.435-.622l2.013-.951,1.1-.517a.89.89,0,0,1,.357-.075.847.847,0,0,1,.848.841.686.686,0,0,1-.031.2c-1.107,4.1-4.021,14.038-4.021,14.089a.847.847,0,0,0,.848.841h7.043a.841.841,0,0,0,.832-.7l3.856-13.378a.9.9,0,0,1,.34-.356l2.238-1.058.868-.411a.9.9,0,0,1,.361-.075c.462,0,.925.386.841.841-.085.486-3.741,13.386-3.741,13.386s-.237.793-.237.91a.839.839,0,0,0,.844.839l4.269-.009h44.453a4.951,4.951,0,0,0,4.818-3.49l3.667-12.842a.846.846,0,0,1,.814-.621h6.78a1.69,1.69,0,0,1,1.693,1.689,1.776,1.776,0,0,1-.034.323L127.2,67.14a5.124,5.124,0,0,0-.2,1.429,5.073,5.073,0,0,0,5.07,5.073h4.12l-1.349,0,78.184,0c1.755,0,2.1-.292,2.176-.672,0,0,.335-1.216.335-1.27a.844.844,0,0,0-.844-.848l-1.926.011A1.766,1.766,0,0,1,211,69.176a1.722,1.722,0,0,1,.091-.413l2.74-9.575,1.364-4.765ZM135.987,39.937l0,1.512a10.621,10.621,0,0,1-3.894,8.214,10.491,10.491,0,0,1-6.452,2.216v-.011l-.789.011-1.816.005a.847.847,0,0,1-.844-.847L126.612,35.5a.841.841,0,0,1,.826-.671l3.419,0v.027h.009a5.092,5.092,0,0,1,5.12,5.089m23.769,16.239c-.07.259-1.117,3.959-1.117,3.959l-2.354,8.243a2.533,2.533,0,0,1-2.442,1.846l-1.109-.005a1.663,1.663,0,0,1-1.653-1.7,2.09,2.09,0,0,1,.035-.374L154,58.01a3.6,3.6,0,0,1,3.477-2.674h1.437c.468,0,.97.392.845.84m46.093.011c0,.081-.852,3.045-.852,3.045l-2.633,9.2a2.531,2.531,0,0,1-2.423,1.794l-1.107-.005a1.664,1.664,0,0,1-1.656-1.7,2.04,2.04,0,0,1,.042-.4l2.874-10.106a3.591,3.591,0,0,1,3.473-2.666L205,55.34a.847.847,0,0,1,.847.847" transform="translate(0 0)" fill="#f5002f"/><path d="M36.547,72.939H35.171v7.493h1.376Zm9.6,7.493V72.939H44.781v4.173c0,.331,0,.763.023,1.093h-.023a10,10,0,0,0-.74-1.047l-3.263-4.218h-1.4v7.493h1.376V76.02c0-.353-.011-.75-.034-1h.023c.2.318.421.6.739,1.024l3.388,4.389Zm9.6,0V72.939H54.377v4.173c0,.331,0,.763.023,1.093h-.023a9.907,9.907,0,0,0-.738-1.047l-3.264-4.218h-1.4v7.493h1.376V76.02c0-.353-.012-.75-.035-1h.023c.2.318.422.6.739,1.024l3.389,4.389Zm10.131-3.741a3.863,3.863,0,0,0-.943-2.661,4.083,4.083,0,0,0-5.629-.069,3.92,3.92,0,0,0-1.079,2.8A3.757,3.757,0,0,0,59.4,79.626a3.852,3.852,0,0,0,6.469-2.935m-1.466.023c0,1.695-.978,2.707-2.365,2.707s-2.377-1.012-2.377-2.707a2.391,2.391,0,1,1,4.742,0m10.233-3.764h-1.41l-1.785,4.264c-.206.477-.353.9-.489,1.3h-.023c-.136-.409-.308-.876-.477-1.33l-1.626-4.23h-1.5l3.036,7.528h.989Zm7.288,7.483L78.916,72.9h-1L75,80.432h1.353l.693-1.876h2.673l.739,1.876Zm-2.637-3h-1.82l.648-1.739a6.023,6.023,0,0,0,.273-.911H78.4a7.648,7.648,0,0,0,.285.933Zm9.324-4.491H82.68v1.148h2.172v6.346h1.387V74.086h2.048Zm8.845,3.752a3.863,3.863,0,0,0-.943-2.661,4.083,4.083,0,0,0-5.629-.069,3.92,3.92,0,0,0-1.079,2.8,3.757,3.757,0,0,0,1.183,2.866,3.852,3.852,0,0,0,6.469-2.935m-1.466.023c0,1.695-.978,2.707-2.365,2.707s-2.377-1.012-2.377-2.707a2.391,2.391,0,1,1,4.742,0m9.494,3.718a18,18,0,0,0-2.239-3.4v-.011a2.149,2.149,0,0,0,1.387-1.969c0-1.148-.727-2.114-2.672-2.114H99.94v7.493h1.376V77.475h.637c.285.091.808,1.024,1.967,2.956Zm-2.239-5.22a1.21,1.21,0,0,1-1.24,1.218h-.693V74.1H102a1.1,1.1,0,0,1,1.251,1.114M113.5,72.939H112.12v7.493H113.5Zm9.6,7.493V72.939h-1.365v4.173c0,.331,0,.763.023,1.093h-.023a9.757,9.757,0,0,0-.739-1.047l-3.263-4.218h-1.4v7.493H117.7V76.02c0-.353-.011-.75-.034-1h.023c.2.318.421.6.739,1.024l3.389,4.389Zm11.474,0V79.283h-2.8v-2.1h2.422V76.031h-2.422V74.086h2.422l.376-1.148h-4.174v7.493Zm6.6,0v-1.16h-2.684V72.939H137.1v7.493Zm6.334,0V79.283h-2.8v-2.1h2.422V76.031H144.7V74.086h2.422l.376-1.148h-4.174v7.493Zm8.391-.591-.375-.989a3.777,3.777,0,0,1-1.842.5,2.681,2.681,0,0,1,.1-5.355,3.532,3.532,0,0,1,1.9.535l.011-1.252a4.154,4.154,0,0,0-1.945-.409,3.84,3.84,0,0,0-4.06,3.889,3.578,3.578,0,0,0,3.776,3.787,4.589,4.589,0,0,0,2.432-.706m7.711-6.9h-5.936v1.148h2.172v6.346h1.387V74.086h2.047Zm7.641,7.493a17.974,17.974,0,0,0-2.24-3.4v-.011a2.149,2.149,0,0,0,1.387-1.969c0-1.148-.727-2.114-2.673-2.114h-2.024v7.493h1.377V77.475h.637c.284.091.806,1.024,1.966,2.956ZM169,75.212a1.21,1.21,0,0,1-1.239,1.218h-.693V74.1h.681A1.1,1.1,0,0,1,169,75.212m11.36,1.478a3.869,3.869,0,0,0-.943-2.661,4.083,4.083,0,0,0-5.629-.069,3.921,3.921,0,0,0-1.08,2.8,3.761,3.761,0,0,0,1.183,2.866,3.852,3.852,0,0,0,6.471-2.935m-1.466.023c0,1.695-.978,2.707-2.367,2.707s-2.376-1.012-2.376-2.707a2.391,2.391,0,1,1,4.742,0M189.6,80.432V72.939h-1.365v4.173c0,.331,0,.763.023,1.093h-.023a9.75,9.75,0,0,0-.739-1.047l-3.263-4.218h-1.4v7.493h1.376V76.02c0-.353-.012-.75-.035-1h.023c.206.318.422.6.74,1.024l3.388,4.389Zm4.208-7.493h-1.376v7.493h1.376Zm8.687,6.9-.375-.989a3.777,3.777,0,0,1-1.842.5,2.681,2.681,0,0,1,.1-5.355,3.535,3.535,0,0,1,1.9.535l.011-1.252a4.161,4.161,0,0,0-1.945-.409,3.84,3.84,0,0,0-4.06,3.889,3.577,3.577,0,0,0,3.776,3.787,4.592,4.592,0,0,0,2.432-.706m6.937-1.445c0-2.332-3.241-2.251-3.241-3.638,0-.5.478-.762,1.082-.762a3.593,3.593,0,0,1,1.751.523l.021-1.228a3.845,3.845,0,0,0-1.842-.421,2.161,2.161,0,0,0-2.444,2.057,1.933,1.933,0,0,0,.489,1.342c.91,1.024,2.729,1.216,2.729,2.286,0,.625-.66.864-1.239.864a2.981,2.981,0,0,1-1.695-.568l-.558,1.012a4,4,0,0,0,2.309.683c1.478,0,2.638-.83,2.638-2.15" transform="translate(1.249 14.253)" fill="#525b5c"/></g></svg>
	<span style="font-size: 30px;color:red;text-transform:uppercase;display: block;padding:23px ;">BLE&nbsp;&nbsp;&nbsp;Web&nbsp;&nbsp;&nbsp;Control&nbsp;&nbsp;&nbsp;Tool</span>
</header>



<div style="display: block;padding-top: 100px;padding-bottom: 40px;" id="app">
	<!-- <svg id="help" onclick="window.open('help.pdf', 'newwindow', 'height=1080, width=1920, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no')" style="z-index: 9999;float: right; display: block;position: relative;" class="btn" width="24" height="24" viewBox="0 0 24 24">
		<path fill="yellow" d="m12 23l-3-3H5q-.825 0-1.413-.588T3 18V4q0-.825.588-1.413T5 2h14q.825 0 1.413.588T21 4v14q0 .825-.588 1.413T19 20h-4l-3 3Zm.9-10.05q0-.9.2-1.325t.85-1.075q.875-.875 1.238-1.463t.362-1.337q0-1.325-.9-2.138T12.225 4.8q-1.375 0-2.337.675T8.55 7.35L10.2 8q.175-.675.7-1.088t1.225-.412q.675 0 1.125.363t.45.962q0 .425-.275.9t-.925 1.05q-.825.725-1.138 1.388t-.312 1.787h1.85Zm-.95 3.85q.525 0 .888-.363t.362-.887q0-.525-.362-.888t-.888-.362q-.525 0-.887.363t-.363.887q0 .525.363.888t.887.362Z"/>
	</svg>
	<svg style="z-index: 9999;float: left; display: block;position: relative;" class="btn" width="69" height="24" viewBox="0 0 184 63.381" ><g transform="translate(-31.54 -31.418)"><path d="M215.4,53.692a.827.827,0,0,0,.066-.332.846.846,0,0,0-.848-.841l-.707.005L200.42,52.5a11.414,11.414,0,0,0-11.413,11.413,11.147,11.147,0,0,0,1.506,5.671.868.868,0,0,1,.126.438.845.845,0,0,1-.847.847l-4.741,0v0a3.591,3.591,0,0,1-3.272-3.577,3.93,3.93,0,0,1,.051-.606c1.189-4.224,3.509-12.332,3.509-12.332l.335-1.2a.694.694,0,0,1,.711-.615l4.138-.009a.854.854,0,0,0,.783-.512s.4-1.355.4-1.453a.845.845,0,0,0-.847-.841l-3.072.011a.843.843,0,0,1-.847-.847c0-.11,1.9-6.731,1.9-6.731s.237-.793.237-.908a.84.84,0,0,0-.843-.84l-7.065.016a.856.856,0,0,0-.8.56h.005L178.034,49.1a.84.84,0,0,1-.821.636l-3.948-.011a.842.842,0,0,0-.808.6s-.371,1.322-.371,1.357a.842.842,0,0,0,.847.847l3.026-.005a.834.834,0,0,1,.837.836c0,.054-2.3,8.109-3.593,12.64a11.411,11.411,0,0,0-.239,1.342,3.5,3.5,0,0,0,.665,2.228.825.825,0,0,1,.157.486.835.835,0,0,1-.746.826h-6.39a1.764,1.764,0,0,1-1.774-1.688,1.481,1.481,0,0,1,.094-.41l2.276-7.958,1.885-6.592s.2-.75.2-.856a.844.844,0,0,0-.841-.841l-1.2.005-12.99-.026a11.422,11.422,0,0,0-9.891,17.118,2.189,2.189,0,0,1,.079.39.782.782,0,0,1-.789.829l-5.59.013a1.7,1.7,0,0,1-1.692-1.693,1.57,1.57,0,0,1,.059-.427l.074-.3h.023l2.418-8.336a5.086,5.086,0,0,0,.254-1.415c0-3.133-2.115-2.88-2.741-3.721,0,0-.43-.376.495-.7a12.576,12.576,0,0,0,7.528-7.063,12.125,12.125,0,0,0,1-4.815,10.958,10.958,0,0,0-10.012-10.913,11.246,11.246,0,0,0-1.17-.062l-3.485,0v.015l-15.613-.015-.011,0-2.634,0a.851.851,0,0,0-.833.692l-.5,1.872a.845.845,0,0,0,.848.841l3.89-.013a.843.843,0,0,1,.845.835c0,.044-2.411,8.472-4.806,16.833h.007C109.678,60.764,107.316,69,107.316,69a2.531,2.531,0,0,1-2.442,1.848l-2.032.013a1.657,1.657,0,0,1-1.691-1.693c.048-.77,4.444-15.747,4.444-15.81a.846.846,0,0,0-.847-.841H97.7a.841.841,0,0,0-.832.7l-4.5,15.6a2.119,2.119,0,0,1-1.9,1.406l-.927-.005a1.554,1.554,0,0,1-1.387-1.7,2.4,2.4,0,0,1,.042-.449l.091-.386.982-3.236,2.176-7.573a3.515,3.515,0,0,0,.081-.75,3.592,3.592,0,0,0-5.146-3.24L78.651,56.45a.674.674,0,0,0-.468.751,4.709,4.709,0,0,0,.306.925c.153.211.419.438.687.355.441-.148,1.782-.778,2.125-.818a.821.821,0,0,1,.847.849c0,.09-.331,1.3-.331,1.3l-1.884,6.592a6.2,6.2,0,0,0-.118.907,3.508,3.508,0,0,0,.667,2.229.823.823,0,0,1,.156.485.843.843,0,0,1-.844.847l-5.953,0a1.692,1.692,0,0,1-1.629-2.141l3.31-11.464a4.125,4.125,0,0,0,.184-1.13,3.593,3.593,0,0,0-3.593-3.595,3.512,3.512,0,0,0-1.541.349L64.8,55.59l-1.082.509a1.061,1.061,0,0,1-.409.1.869.869,0,0,1-.837-.7,3.662,3.662,0,0,0-3.544-2.967,3.55,3.55,0,0,0-1.548.349l-6.149,2.887-.687.324a1.08,1.08,0,0,1-.41.1.848.848,0,0,1-.835-.677,3.663,3.663,0,0,0-3.546-2.987,3.479,3.479,0,0,0-1.551.355l-.04.011-8.822,4.089a.81.81,0,0,0-.5.769,2.744,2.744,0,0,0,.285.771.849.849,0,0,0,.765.485.883.883,0,0,0,.364-.083l2.492-1.188a.828.828,0,0,1,.371-.086.851.851,0,0,1,.844.849c0,.271-2.987,10.5-2.987,10.5a2.535,2.535,0,0,1-2.443,1.861l-1.826-.015a.843.843,0,0,0-.808.6s-.312,1.062-.353,1.345a.774.774,0,0,0,.844.845h9.887l.005-.007,1.506,0a.855.855,0,0,0,.8-.562h-.005L48.4,59.848a.907.907,0,0,1,.435-.622l2.013-.951,1.1-.517a.89.89,0,0,1,.357-.075.847.847,0,0,1,.848.841.686.686,0,0,1-.031.2c-1.107,4.1-4.021,14.038-4.021,14.089a.847.847,0,0,0,.848.841h7.043a.841.841,0,0,0,.832-.7l3.856-13.378a.9.9,0,0,1,.34-.356l2.238-1.058.868-.411a.9.9,0,0,1,.361-.075c.462,0,.925.386.841.841-.085.486-3.741,13.386-3.741,13.386s-.237.793-.237.91a.839.839,0,0,0,.844.839l4.269-.009h44.453a4.951,4.951,0,0,0,4.818-3.49l3.667-12.842a.846.846,0,0,1,.814-.621h6.78a1.69,1.69,0,0,1,1.693,1.689,1.776,1.776,0,0,1-.034.323L127.2,67.14a5.124,5.124,0,0,0-.2,1.429,5.073,5.073,0,0,0,5.07,5.073h4.12l-1.349,0,78.184,0c1.755,0,2.1-.292,2.176-.672,0,0,.335-1.216.335-1.27a.844.844,0,0,0-.844-.848l-1.926.011A1.766,1.766,0,0,1,211,69.176a1.722,1.722,0,0,1,.091-.413l2.74-9.575,1.364-4.765ZM135.987,39.937l0,1.512a10.621,10.621,0,0,1-3.894,8.214,10.491,10.491,0,0,1-6.452,2.216v-.011l-.789.011-1.816.005a.847.847,0,0,1-.844-.847L126.612,35.5a.841.841,0,0,1,.826-.671l3.419,0v.027h.009a5.092,5.092,0,0,1,5.12,5.089m23.769,16.239c-.07.259-1.117,3.959-1.117,3.959l-2.354,8.243a2.533,2.533,0,0,1-2.442,1.846l-1.109-.005a1.663,1.663,0,0,1-1.653-1.7,2.09,2.09,0,0,1,.035-.374L154,58.01a3.6,3.6,0,0,1,3.477-2.674h1.437c.468,0,.97.392.845.84m46.093.011c0,.081-.852,3.045-.852,3.045l-2.633,9.2a2.531,2.531,0,0,1-2.423,1.794l-1.107-.005a1.664,1.664,0,0,1-1.656-1.7,2.04,2.04,0,0,1,.042-.4l2.874-10.106a3.591,3.591,0,0,1,3.473-2.666L205,55.34a.847.847,0,0,1,.847.847" transform="translate(0 0)" fill="#f5002f"/><path d="M36.547,72.939H35.171v7.493h1.376Zm9.6,7.493V72.939H44.781v4.173c0,.331,0,.763.023,1.093h-.023a10,10,0,0,0-.74-1.047l-3.263-4.218h-1.4v7.493h1.376V76.02c0-.353-.011-.75-.034-1h.023c.2.318.421.6.739,1.024l3.388,4.389Zm9.6,0V72.939H54.377v4.173c0,.331,0,.763.023,1.093h-.023a9.907,9.907,0,0,0-.738-1.047l-3.264-4.218h-1.4v7.493h1.376V76.02c0-.353-.012-.75-.035-1h.023c.2.318.422.6.739,1.024l3.389,4.389Zm10.131-3.741a3.863,3.863,0,0,0-.943-2.661,4.083,4.083,0,0,0-5.629-.069,3.92,3.92,0,0,0-1.079,2.8A3.757,3.757,0,0,0,59.4,79.626a3.852,3.852,0,0,0,6.469-2.935m-1.466.023c0,1.695-.978,2.707-2.365,2.707s-2.377-1.012-2.377-2.707a2.391,2.391,0,1,1,4.742,0m10.233-3.764h-1.41l-1.785,4.264c-.206.477-.353.9-.489,1.3h-.023c-.136-.409-.308-.876-.477-1.33l-1.626-4.23h-1.5l3.036,7.528h.989Zm7.288,7.483L78.916,72.9h-1L75,80.432h1.353l.693-1.876h2.673l.739,1.876Zm-2.637-3h-1.82l.648-1.739a6.023,6.023,0,0,0,.273-.911H78.4a7.648,7.648,0,0,0,.285.933Zm9.324-4.491H82.68v1.148h2.172v6.346h1.387V74.086h2.048Zm8.845,3.752a3.863,3.863,0,0,0-.943-2.661,4.083,4.083,0,0,0-5.629-.069,3.92,3.92,0,0,0-1.079,2.8,3.757,3.757,0,0,0,1.183,2.866,3.852,3.852,0,0,0,6.469-2.935m-1.466.023c0,1.695-.978,2.707-2.365,2.707s-2.377-1.012-2.377-2.707a2.391,2.391,0,1,1,4.742,0m9.494,3.718a18,18,0,0,0-2.239-3.4v-.011a2.149,2.149,0,0,0,1.387-1.969c0-1.148-.727-2.114-2.672-2.114H99.94v7.493h1.376V77.475h.637c.285.091.808,1.024,1.967,2.956Zm-2.239-5.22a1.21,1.21,0,0,1-1.24,1.218h-.693V74.1H102a1.1,1.1,0,0,1,1.251,1.114M113.5,72.939H112.12v7.493H113.5Zm9.6,7.493V72.939h-1.365v4.173c0,.331,0,.763.023,1.093h-.023a9.757,9.757,0,0,0-.739-1.047l-3.263-4.218h-1.4v7.493H117.7V76.02c0-.353-.011-.75-.034-1h.023c.2.318.421.6.739,1.024l3.389,4.389Zm11.474,0V79.283h-2.8v-2.1h2.422V76.031h-2.422V74.086h2.422l.376-1.148h-4.174v7.493Zm6.6,0v-1.16h-2.684V72.939H137.1v7.493Zm6.334,0V79.283h-2.8v-2.1h2.422V76.031H144.7V74.086h2.422l.376-1.148h-4.174v7.493Zm8.391-.591-.375-.989a3.777,3.777,0,0,1-1.842.5,2.681,2.681,0,0,1,.1-5.355,3.532,3.532,0,0,1,1.9.535l.011-1.252a4.154,4.154,0,0,0-1.945-.409,3.84,3.84,0,0,0-4.06,3.889,3.578,3.578,0,0,0,3.776,3.787,4.589,4.589,0,0,0,2.432-.706m7.711-6.9h-5.936v1.148h2.172v6.346h1.387V74.086h2.047Zm7.641,7.493a17.974,17.974,0,0,0-2.24-3.4v-.011a2.149,2.149,0,0,0,1.387-1.969c0-1.148-.727-2.114-2.673-2.114h-2.024v7.493h1.377V77.475h.637c.284.091.806,1.024,1.966,2.956ZM169,75.212a1.21,1.21,0,0,1-1.239,1.218h-.693V74.1h.681A1.1,1.1,0,0,1,169,75.212m11.36,1.478a3.869,3.869,0,0,0-.943-2.661,4.083,4.083,0,0,0-5.629-.069,3.921,3.921,0,0,0-1.08,2.8,3.761,3.761,0,0,0,1.183,2.866,3.852,3.852,0,0,0,6.471-2.935m-1.466.023c0,1.695-.978,2.707-2.367,2.707s-2.376-1.012-2.376-2.707a2.391,2.391,0,1,1,4.742,0M189.6,80.432V72.939h-1.365v4.173c0,.331,0,.763.023,1.093h-.023a9.75,9.75,0,0,0-.739-1.047l-3.263-4.218h-1.4v7.493h1.376V76.02c0-.353-.012-.75-.035-1h.023c.206.318.422.6.74,1.024l3.388,4.389Zm4.208-7.493h-1.376v7.493h1.376Zm8.687,6.9-.375-.989a3.777,3.777,0,0,1-1.842.5,2.681,2.681,0,0,1,.1-5.355,3.535,3.535,0,0,1,1.9.535l.011-1.252a4.161,4.161,0,0,0-1.945-.409,3.84,3.84,0,0,0-4.06,3.889,3.577,3.577,0,0,0,3.776,3.787,4.592,4.592,0,0,0,2.432-.706m6.937-1.445c0-2.332-3.241-2.251-3.241-3.638,0-.5.478-.762,1.082-.762a3.593,3.593,0,0,1,1.751.523l.021-1.228a3.845,3.845,0,0,0-1.842-.421,2.161,2.161,0,0,0-2.444,2.057,1.933,1.933,0,0,0,.489,1.342c.91,1.024,2.729,1.216,2.729,2.286,0,.625-.66.864-1.239.864a2.981,2.981,0,0,1-1.695-.568l-.558,1.012a4,4,0,0,0,2.309.683c1.478,0,2.638-.83,2.638-2.15" transform="translate(1.249 14.253)" fill="white"/></g></svg>
				 -->
	<div id="loading" style="width: 100%;height:100%;position:fixed ;top:0;left:0;z-index:9999;display:flex;justify-content:center;align-items:center;background-color: rgba(255,255,255,0.45);"> 
		<div style="min-width: 80px;height: 80px;display: grid;align-content: center;background: white;border-radius: 8px;">
			<!-- <div style="padding: 0px 0px 5px 0px ;"><img style="" width="60px" height="24px" src="loading.gif"/></div> -->
			<div style="padding: 0px 0px 5px 0px ;"><img style="width:32px ;height:32px ;"  src="loading.gif"/></div>
			<div style="padding: 5px 0px 0px 0px ;"><span  style="font-size: small;white-space: pre-wrap; text-align: center;text-transform:capitalize;color: black;" id="loadingText">Loading ssss...</span></div>
		</div>	
	</div> 	
	<!-- <h1 style="padding: 30px;"><span style="width:400px;color:red;text-transform:uppercase">BLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Control&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tool</span>
	</h1> -->
	<div style="position:relative">

		<button :disabled="isConnect" :class="[isConnect ? 'button-disable' : 'button-green, btn']" style="width:180px;" id="connect" @click="onConnect">Connect</button>
		<button :disabled="!isConnect" :class="[isConnect ? 'button-stop, btn' : 'button-disable']" style="width:180px;" id="disconnect" @click="onDisconnect">Disconnect</button>
	</div>

	<div style="width:100%;padding: 0px 0px 2px 0px;font-size: small;text-transform:capitalize">
		<span style="color:white">Host Firmware Version:<span id="v_hf" style="color:white"></span></span>
		<span style="color:white">Slave Firmware Type:<span id="type_sf" style="color:white"></span></span>
		<span style="color:white">Slave Firmware Version:<span id="v_sf" style="color:white"></span></span>
	</div>
	<!-- <div style="width:100%;"><span style="color:red">!!!重要!!!&nbsp;&nbsp;&nbsp;&nbsp;请在系统蓝牙设置中进行配对后使用</span></div> -->
	
	<main>
		<!-- <textarea id="cmdList_textarea" style="resize:none;width:100%;height:180px;background: transparent;color: white;display: none;" 
		placeholder="！！！命令格式为cmdID_[payload]_[timeout(ms)]，多条命令请换行！！！&#13;&#13;默认每条命令超时3000毫秒。">1__8000&#13;1__3000&#13;1_&#13;1__3000
	</textarea> -->
		<div style="padding:0px;margin:0px;border: 1px solid gray;width:100%;height:180px;background: transparent;color: white; display: flex;" >
			<article class="box">
				<svg id="exchangeCmdLog" style="z-index: 999;padding-right: 6px;padding-top: 3px;" class="tag" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="red" d="M16 15H9v-2h7m3-2H9V9h10m0-2H9V5h10m2-4H7c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h14c1.11 0 2-.89 2-2V3a2 2 0 0 0-2-2M3 5v16h16v2H3a2 2 0 0 1-2-2V5h2Z"/></svg>
				<textarea id="cmdList_textarea" style="resize:none;padding:0px;margin:0px;top:-23px;position:relative;width:inherit;height:180px;display: block;overflow-y: auto;" placeholder="！！！命令格式为cmdID_[payload]_[timeout(ms)]_[interval(ms)]，多条命令请换行！！！&#13;&#13;Loop Test时interval无效，Simple Send时timeout无效。&#13;&#13;interval不小于20毫秒。">1__4000&#13;1__3000&#13;1_&#13;1__3000
				</textarea>
				<div id="cmdList_log" style="padding:0px;margin:0px;top:-23px;position:relative;width:inherit;height:180px;display: none;overflow-y: auto;">
					<span id="looplog_1" style="font-family:monospace;display: none; color:red;font-size: small;white-space: pre-line;  word-break: break-all;">1-1 log_11</span>
					<span id="looplog_2" style="font-family:monospace;display: none; padding-left: 50px ;font-size: small;white-space: pre-line;  word-break: break-all;">&log_11,0</span>
					<span id="looplog_3" style="font-family:monospace;display: none; padding-left: 50px ;font-size: small;white-space: pre-line;   word-break: break-all;">REPlog_12---</span>
				</div>
			</article>
		</div>
		<div style="padding-left: 0px;padding-right: 0px;display: flex;flex-flow: column wrap;justify-content:center;width:350px;">
			<div style="padding: 0px;display: none;">
				<span style="width: 110px;margin-left: 15px;margin-bottom: 0px;text-transform:none ">Interval(ms)：</span>
				<input :disabled="!isConnect" type="number" step="1" id="intervalNum" name="img_num" style="width:60px;padding: 5px;margin-bottom: 5px;" />
			</div>
			<div style="padding: 0px;">
				<span style="width: 110px;margin-left: 15px;margin-bottom: 15px;text-transform:capitalize">Loop Times：</span>
				<input :disabled="!isConnect" type="number" value="2" step="1" id="cycleNum" name="img_num" style="width:60px;padding: 5px;margin-bottom: 15px;" />
			</div>
			<button style="margin-bottom: 15px;" :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-up" id="loopTestBtn">Loop Test</button>
            <button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-down" id="simpleSendBtn">Simple Send</button>
		</div>
	</main>
	<main >
		<div style="padding:0px;margin:0px;border: 1px solid gray;width:100%;height:180px;background: transparent;color: white; display: flex;" >
			<textarea  id="file_textarea" style="border: 0px;resize:none;width:100%;height:172px;background: transparent;color: white;"></textarea>
			
			<div style="padding: 0px 0px 0px 15px;display: grid;border-left: 1px solid gray;height: 180px;">
				<span style="width: 140px;margin-left: 5px;margin-right: 5px;text-transform:capitalize">File Type：</span>
				<input :disabled="!isConnect" type="number" placeholder="0 or 1" step="1" id="fileTypeInput" style="width:110px;padding: 8px;margin-left: 5px;margin-right: 5px;" />
				<span style="width: 140px;margin-left: 5px;margin-right: 5px;text-transform:capitalize">Firmware Type：</span>
				<input :disabled="!isConnect" type="number" placeholder="0 ~ 5" step="1" id="fwTypeInput" style="width:110px;padding: 8px;margin-left: 5px;margin-right: 5px;" />
				<span style="width: 140px;margin-left: 5px;margin-right: 5px;text-transform:capitalize">File Version：</span>
				<input :disabled="!isConnect" placeholder="Examples:T.2.1.2" id="fileVersionInput"  style="width:110px;padding: 8px;margin-left: 5px;margin-right: 5px;" />
			</div>
		</div>
		<div style="padding-left: 0px;padding-right: 0px;display: flex;flex-flow: column wrap;justify-content:center;width:350px;">
			<span id="fileName_upload" style="padding-bottom: 5px;width: 100%;padding-left: 15px;text-transform:none;white-space: pre-line;  word-break: break-all;text-align: center;font-size: 14px;color: red;"></span>
			<button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-up" id="fileChooseBtn">
				<label for="file_send">Choose File</label>
			</button>
			<input  :disabled="!isConnect" style="margin-bottom: 15px;display:none" type="file" id="file_send" @change="onChooseFile">
			<button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-down" id="uploadBtn" @click="onUpload">Upload</button>
			<button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" style="display: none;width:180px;margin-left: 15px;" id="upgradeBtn" >Upgrade</button>
		</div>

	</main>

	<main>
		<div id="div_img_camera" style="padding: 0px;width:100%;height:180px;background: transparent;color: white;align-items: center;border: 1px solid gray;">
			<img id="img_camera" title="Tooltip&#13;1.Take Photo&#13;2.Show Image" style="display: block;margin-left: auto;margin-right: auto;" alt=""/>
		</div>
		<div style="padding-left: 0px;padding-right: 0px;display: flex;flex-flow: column wrap;width:350px;">
			<button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-up" id="captureBtn">Take Photo</button>
			<button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-down" id="showImageBtn">Show Image</button>
		</div>
	</main>

	<main>
		<div class="scrolling-wrapper-flexbox" style="width:100%;min-height: 200px;padding: 0px;overflow-y: hidden;background: transparent;color: white;justify-content: normal;width:100%; border: 1px solid #cccccc;">
			<div id="no_his_info" style="width: 100%;display:normal" >
				<span style="color:gray">No History</span>
			</div>
			<div v-for="num in 80" style="padding:0px; flex-direction: column;align-items: normal;display:none;">
				<img :id="`img_his_${num}`" class="card" style="width: 240px; height: 180px;display: flex;" src=''  alt=""/>
				<span class="hisNo">&nbsp;1&nbsp;&nbsp;<span :id="`uuid_his_${num}`" class="hisText">Infer:</span></span>
				<span class="hisNo">&nbsp;&nbsp;&nbsp;&nbsp;<span :id="`infer_his_${num}`" class="hisText">Infer:</span></span>
				<span class="hisNo">&nbsp;&nbsp;&nbsp;&nbsp;<span :id="`score_his_${num}`" class="hisText">Infer:</span></span>
			</div>
		</div>
		<div style="padding-left: 0px;padding-right: 0px;display: flex;flex-flow: column wrap;width:350px;">
			<button :disabled="!isConnect" :class="[!isConnect ? 'button-disable' : 'button-green, btn']" class="button-up" id="hisBtn">History</button>
		</div>
	</main>
	<main>
		<textarea readonly  id="log_textarea" style="resize:none;width:100%;height:180px;background: transparent;color: white;"></textarea>
		<div style="padding-left: 0px;padding-right: 0px;display: flex;flex-flow: column wrap;width:350px;">
			<button class="button-green, btn" class="button-down" id="clearLogBtn">CLEAR LOG</button>
		</div>
	</main>
</div>
	
<footer style="height: 50px;">
	<div id="heart_div" class="right-bottom" style="display: none;padding: 0 0 0px 5px;" >
	
		<svg id="heart_svg" class=" " style="position:relative;" width="40" height="40" viewBox="0 0 48 48"><g fill="none" stroke="yellow" stroke-linejoin="round" stroke-width="4"><path d="M24 28.63a4.538 4.538 0 0 0 4.546-4.532A4.538 4.538 0 0 0 24 19.567a4.538 4.538 0 0 0-4.545 4.53A4.538 4.538 0 0 0 24 28.63Z"/><path stroke-linecap="round" d="M16 15c-5.333 4.97-5.333 13.03 0 18m16 0c5.333-4.97 5.333-13.03 0-18M9.858 10c-7.81 7.786-7.81 20.41 0 28.196m28.284 0c7.81-7.786 7.81-20.41 0-28.196"/></g></svg>
		<span id="heart_time" style="color:white;position:absolute;margin-bottom: 40px;">--</span>
	</div>

	<p style="text-transform:none;height: 50px;">
		Copyright © <a target="_blank" href="https://www.murata.com" style="text-transform:none;color:red"> Murata</a> 
		Manufacturing Co., Ltd. All Rights Reserved.
	</p>
</footer>
<script>
	const { createApp } = Vue;
	createApp({
	  // data() 返回的属性将会成为响应式的状态,并且暴露在 `this` 上
	  	data() {
			console.log('createApp data')
			return {
			isConnect: false,
			hisList:[],
			}
	  	},
	  	mounted() {
			var loopTimes = parseInt(localStorage.getItem('loopTimes'));
			if(isNaN(loopTimes)) loopTimes = 1;
			cycleNum.value = loopTimes;
			var cmdList = localStorage.getItem('cmdList');
			if(cmdList != null){
				cmdList_textarea.value = cmdList
			}
			let fileType = localStorage.getItem('fileType');
			let fileVersion = localStorage.getItem('fileVersion');
			let fwType = localStorage.getItem('fwType');
			if(fileType != null){
				fileTypeInput.value = fileType;
			}
			if(fileType != null){
				fileVersionInput.value = fileVersion;
			}
			if(fileType != null){
				fwTypeInput.value = fwType;
			}
		},
	  // methods 是一些用来更改状态与触发更新的函数,它们可以在模板中作为事件监听器绑定
		methods: {
			async onConnect(event) {
				let aa = parseInt("0x"+"B", 16);
				let bb = parseInt("0x"+"S", 16);
				log_textarea.innerHTML ='';
				let that = this;
				this.logCurrent("onConnect:"+this.isConnect);
				this.isConnect = await connect();
				this.logCurrent("onConnect:"+this.isConnect);
				if(device){
					device.addEventListener('gattserverdisconnected', this.eventDisconnected);//监听设备断开连接
				}
			},
			
			async onDisconnect(event) {
				this.logCurrent("onDisconnect:"+this.isConnect);
				this.isConnect = await disconnect();
				this.logCurrent("onDisconnect:"+this.isConnect);
				this.eventDisconnected(null);
			},

			eventDisconnected(event) {
				this.isConnect = false; 
				this.logCurrent("eventDisconnected:"+this.isConnect);
				onGattServerDisconnected(event);
			},

			logCurrent(log){
				console.log(new Date().format("MM-dd HH:mm:ss.S ")+log);
			},

			async onLoopTest(){
				let loopTimes = cycleNum.value;
				if (!(/(^[1-9]\d*$)/.test(loops))) { 
					loopTimes = 1;
				}else { 
					loopTimes = parseInt(loops);
				} 
				if(loopTimes > 100) loopTimes = 100;
				cycleNum.value = loopTimes;
				let isOK = prepare_LOOP_TESTING();
				if(isOK){
					let cmd = cmdList_textarea.value.replaceAll(" ","");
					cmd = cmdList_textarea.value.replaceAll("\t","");
					localStorage.setItem('loopTimes', loopTimes);
					localStorage.setItem('cmdList', cmd);
					startLoopTest(1, 0);
				} 
			},

			async onChooseFile(){
				chooseFile();
			},


			async onUpload(){
				let isOK = prepareUploadFile();
				if(isOK){
					localStorage.setItem('fileType', fileTypeInput.value);
					localStorage.setItem('fileVersion', fileVersionInput.value);
					localStorage.setItem('fwType', fwTypeInput.value);
				}
				
			}
	  	},
	}).mount('#app')
</script>
  
<script  src="main.js"></script>